Presentation of information on multiple devices

ABSTRACT

A computer-implemented method of information presentation on multiple devices is provided. The method may include presenting a first barcode on a webpage. The first barcode may be encoded with first data based on a uniform resource locator of the webpage. The method may also include generating second data based on a user interaction with the webpage and altering a configuration of the webpage based on the user interaction without leaving the webpage. The method may also include generating a second barcode encoded with the first data and the second data. The method may further include presenting the second barcode on the webpage with the altered configuration.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.15/589,969, filed May 8, 2017, which is a continuation of U.S. patentapplication Ser. No. 14/943,770, filed Nov. 17, 2015, now U.S. Pat. No.9,646,101, issued May 9, 2017; the entire disclosures of which arehereby incorporated by reference.

FIELD

The embodiments discussed herein are related to the presentation ofinformation on multiple devices.

BACKGROUND

People are using multiple types of devices to obtain information,merchandise, and services. For example, people may obtain informationfrom a desktop or laptop computer as well as from mobile devices, suchas smart phones and tablets. In some circumstances, people may begin toobtain information on a first device and then transfer over to a seconddevice to continue to obtain the same information.

The subject matter claimed herein is not limited to embodiments thatsolve any disadvantages or that operate only in environments such asthose described above. Rather, this background is only provided toillustrate one example technology area where some embodiments describedherein may be practiced.

BRIEF DESCRIPTION OF THE DRAWINGS

Example embodiments will be described and explained with additionalspecificity and detail through the use of the accompanying drawings inwhich:

FIG. 1 illustrates an example system that may be used to presentinformation on multiple devices;

FIG. 2a illustrates an example of a first configuration of a webpagepresented on a display of a first device;

FIG. 2b illustrates an example of a second configuration of the webpageof FIG. 2 a;

FIG. 2c illustrates an example of the second configuration of thewebpage of FIG. 2b presented on a display of a second device;

FIG. 3 illustrates an example system that may be part of a system thatpresents information on multiple devices;

FIG. 4 is a flowchart of example operations to present information onmultiple devices; and

FIG. 5 is a flowchart of an example computer-implemented method ofinformation presentation on multiple devices.

DESCRIPTION OF EMBODIMENTS

Some embodiments herein relate to operations to present information onmultiple devices. For example, a user may navigate to a webpage on afirst device, such as a desktop computer. After navigating to thewebpage, the user may leave the first device, but may desire to continueviewing or interacting with the webpage on a second device, such as asmartphone. To avoid having to reenter the uniform resource locator(URL) on the second device to navigate to the webpage, the webpage mayinclude a barcode, such as a quick response (QR) code. The QR code mayinclude the URL of the webpage. The user may capture and decode the QRcode with the second device. In this manner, the second device mayobtain the URL of the webpage without the user having to enter the URLinto the second device. The second device may then use a web browser tonavigate to the webpage to allow the user to continue to view orinteract with the webpage on the second device.

In some embodiments, the user may interact with the webpage on the firstdevice in a way to change a configuration of the webpage as presented onthe first device. For example, the webpage may include javascript orsome other code that may adjust the configuration of the webpage basedon user input. For example, the webpage may include multiple listingsand buttons to allow a user to sort the listings. The code may adjustthe listings presented by the webpage without navigating away from thewebpage. In these and other embodiments, data regarding the user inputmay be captured. The QR code presented on the webpage that indicates theURL of the webpage may be updated to include the URL of the webpage andthe data that indicates the user interaction with the webpage.

In these and other embodiments, the user may capture and decode the QRcode with the second device. The second device may load the webpageusing the URL decoded from the QR code. The second device may alsoautomatically change the configuration of the webpage based on the datadecoded from the QR code. As a result, the user may be presented withthe webpage on the second device in the configuration that was presentedon the first device.

As an example, a user may be searching for tickets to an athleticcontest using an on-line ticket retailer. The user may navigate to thewebpage that lists different tickets using a desktop computer. Withoutnavigating away from the webpage, the user may change listings presentedby the webpage based on sorting criteria on the webpage such as a numberof tickets, ticket price, ticket location in the venue, etc. A QR codeon the webpage may dynamically change after each user interaction withthe webpage to include the webpage URL and the current configuration ofthe webpage. For example, the webpage when initially presented mayprovide over one thousand tickets for sale. The user may have sorted theavailable tickets based on price and ticket location such that thewebpage indicates ten tickets that meet the user's criteria. The webpagemay automatically update the QR code based on the configuration of thewebpage that indicates the ten tickets. The user may capture and decodethe updated QR code on a second device, such as a mobile phone. Usingthe URL and the data from the decoded QR code, the webpage with theconfiguration of ten tickets that meet the user's criteria may bepresented by the second device.

Turning to the figures, FIG. 1 illustrates an example system 100 thatmay be used to present information on multiple devices. The system 100may be arranged in accordance with at least one embodiment described inthe present disclosure. The system 100 may include a network 110, a hostsystem 112, a first device 140 that includes a display 142, and a seconddevice 150 that includes a display 152 and an imaging device 154.

The network 110 may be configured to communicatively couple the hostsystem 112 with the first device 140 and the second device 150. In someembodiments, the network 110 may be any network or configuration ofnetworks configured to send and receive communications between devices.In some embodiments, the network 110 may include a conventional typenetwork, a wired or wireless network, and may have numerous differentconfigurations. Furthermore, the network 110 may include a local areanetwork (LAN), a wide area network (WAN) (e.g., the Internet), or otherinterconnected data paths across which multiple devices and/or entitiesmay communicate. In some embodiments, the network 110 may include apeer-to-peer network. The network 110 may also be coupled to or mayinclude portions of a telecommunications network for sending data in avariety of different communication protocols. In some embodiments, thenetwork 110 may include Bluetooth® communication networks or cellularcommunication networks for sending and receiving communications and/ordata including via short message service (SMS), multimedia messagingservice (MMS), hypertext transfer protocol (HTTP), direct dataconnection, wireless application protocol (WAP), e-mail, etc. Thenetwork 110 may also include a mobile data network that may includethird-generation (3G), fourth-generation (4G), long-term evolution(LTE), long-term evolution advanced (LTE-A), Voice-over-LTE (“VoLTE”) orany other mobile data network or combination of mobile data networks.Further, the network 110 may include one or more IEEE 802.11 wirelessnetworks.

In some embodiments, the host system 112 may include any configurationof hardware, such as servers and databases that are networked togetherand configured to perform a task. For example, the host system 112 mayinclude a single computing system that includes one or more processorsand memory, such as a server or some other computing system configuredto perform operations as described in this disclosure. Alternately oradditionally, the host system 112 may include multiple computingsystems, such as multiple servers, that are networked together andconfigured to perform operations as described in this disclosure. Insome embodiments, the host system 112 may includecomputer-readable-instructions that are configured to be executed by oneor more devices in the system 100, such as the first device 140 and/orthe second device 150 to perform operations described in thisdisclosure.

In some embodiments, the host system 112 may include a web server thathosts webpages of a website that are accessed through URLs. In these andother embodiments, the host system 112 may include code, such as HTMLand javascript code that may be provided to devices based on receivedrequests. The host system 112 may further provide additional data asrequested from a device based on instructions from the code provided bythe host system 112 executed on the device. For example, the firstdevice 140 may send a request with a URL of a webpage. The host system112 may respond to the request by sending code to the first device 140.Execution of the code by the first device 140 may cause the first device140 to request further data with respect to the webpage, such as images,listings, or other data from the host system 112. The host system 112may access the requested data and send the data to the first device 140.The host system 112 may respond in a similar manner to the second device150 or any other device coupled to the network 110.

In some embodiments, the host system 112 may be configured as an onlinemarketplace for a seller or sellers to sell goods to buyers. In theseand other embodiments, the host system 112 may host webpages of itemsfor sale. The data that may be requested based on execution of the codefor the webpage may be images or additional listings of particularitems. Alternately or additionally, the host system 112 may beconfigured as any other client or user centric type system.

The first device 140 may be any electronic device configured to providea user with access to one or more systems, which may include one or moreservers and databases, such as the host system 112 through a network,such as the network 110. For example, the first device 140 may include adesktop computer, a laptop computer, a smartphone, a mobile phone, atablet computer, or any other processing device configured to accessinformation over a network or internally.

In some embodiments, the first device 140 may be configured to receiveinput from a user and to present information and/or data to the user.For example, a user may interact with the first device 140 and directthe first device 140 to request a webpage from the host system 112. Inthese and other embodiments, the user may interact with the first device140 through a browser. In some embodiments, the user may direct thefirst device 140 to request the webpage by providing the first device140 with a URL of the webpage. Alternately or additionally, the user mayuse the first device 140 to determine the URL of the webpage and maydirect the first device 140 to request the webpage from the host system112.

In response to the direction of the user, the first device 140 may sendthe URL to the host system 112. The host system 112 may use the URL toidentify the webpage requested. Based on the request, the host system112 may provide code to the first device 140 over the network 110. Thecode may be HTML code. Alternately or additionally, the code may be anyother type of coding language that may be used by a browser or otherapplication to render webpages.

The first device 140 may receive the code. Based on the received code,the first device 140, through an application such as a web browser, maypresent the webpage to the user through the display 142. Alternately oradditionally, the first device 140 may present information from thewebpage or the webpage using another medium, such as through audio ortactile response. In some embodiments, the code provided by the hostsystem 112 may include client side code that may be executed by thefirst device 140. For example, the client side code may be javascript.The first device 140 may execute the client side code. Based on theexecution of the client side code, the user may interact with thewebpage to change a configuration of the webpage without navigating awayfrom the webpage. In other words, the information presented on thedisplay 142 through a web browser that is included on the webpage maychange without the web browser navigating to a different URL.

For example, the webpage may include elements through which a user mayinteract with the webpage. The client-side code executed by the firstdevice 140 may obtain the user interactions and change the configurationof the webpage accordingly. For example, the configuration of thewebpage may change by changing the ordering or display of informationpresented on the webpage. Alternately or additionally, the client-sidecode may request additional data from the host system, such as images,item listings, or other information, for including in the webpage. Inthese and other embodiments, the client-side code may send the requestto the host system 112, the host system 112 may respond with the data,and the client-side code may present the data in the webpage to theuser.

In some embodiments, the webpage may include a barcode 144. The webpagemay include the barcode 144 such that the barcode 144 is displayed onthe display 142. In some embodiments, the barcode 144 may be amachine-readable optical label. For example, the barcode 144 may be atwo-dimensional machine-readable optical label. In some embodiments, thebarcode 144 may be a quick response (QR) code.

The barcode 144 may include encoded data about the webpage. For example,the barcode 144 may include an encoded URL or part of the URL of thewebpage. For example, the barcode 144 may include an encoded resourcename of the URL. As an example, the URL of a webpage may include“http://www.examplepage.com.” The resource name of the URL may include“examplepage.com.”

In some embodiments, the barcode 144 may include application data. Forexample, the barcode 144 may include application data related to theinformation presented by the webpage. For example, the application datamay include instructions for a native application running on a device torequest the information presented by the webpage for presentation by thenative application. In these and other embodiments, the nativeapplication may be a non-web browser application that is specificallycoded to present information presented by the webpage. For example, thenative application may be associated with the webpage or the entity thatcontrols the webpage. For example, the native application may beproduced by the entity that produces the webpage.

In some embodiments, the data about the webpage encoded in the barcode144 may include data about a present configuration of the webpage. Inthese and other embodiments, the data about the present configuration ofthe webpage may be data that may be used by the first device 140 togenerate the present configuration of the webpage given an initialpresentation of the webpage based on the webpage as provided from thehost system 112 when the URL of the webpage is requested.

For example, a webpage may include a list of items that is sortablebased on one or more criteria. An initial presentation of the webpagemay have the items sorted in a first manner and a present configurationof the webpage may be sorted in a second manner. The data may indicatethe criteria used to sort the list such that the webpage may be changedfrom an initial configuration to a present configuration with the itemssorted in the second manner.

In some embodiments, the barcode 144 may be dynamically updated based onuser interaction with the webpage. For example, in some embodiments,when the webpage is initially presented and before user interaction withthe webpage, the barcode 144 may include the URL of the webpage and/orthe application data. In these and other embodiments, the barcode 144may be generated by the first device 140 using client-side code providedby the host system 112. Alternately or additionally, the host system 112may provide information for presenting the barcode 144.

After some changes to the webpage, which may be based on userinteraction with a webpage, the barcode 144 may be dynamically updatedto include the URL of the webpage and data about the presentconfiguration of the webpage and/or the URL of the webpage, theapplication data, and data about the present configuration of thewebpage. In these and other embodiments, the client-side code providedby the host system 112 may generate the updated barcode 144 and presentthe updated barcode 144 for display on the display 142. In this manner,the barcode 144 presented on the display 142 may include the URL of thewebpage and data for a present configuration of the webpage. Alternatelyor additionally, the user interactions may be provided to the hostsystem 112 and the host system 112 may generate the updated barcode 144and provide the updated barcode 144 to the first device 140.

The second device 150 may be any electronic device configured to providea user with access to one or more systems, which may include one or moreservers and databases, such as the host system 112, through a network,such as the network 110. For example, the second device 150 may includea desktop computer, a laptop computer, a smartphone, a mobile phone, atablet computer, or any other processing device configured to accessinformation over a network or internally.

In some embodiments, the second device 150 may be configured to receiveinput from a user and to present information and/or data to the user.For example, a user may interact with the second device 150 and directthe second device 150 to capture an image of the barcode 144 using theimaging device 154. The imaging device 154 may include any type ofdevice configured to capture an image, such as a camera, video recorder,or other device.

After capturing the image of the barcode 144, the second device 150 maydecode the barcode 144. The barcode 144 may be decoded using softwareinstalled on the second device 150. In some embodiments, the softwaremay be generic software configured to decode barcodes. Alternately oradditionally, the software may be specific to an application. Forexample, the application may be produced and/or associated with theproducers of the webpage that includes the barcode 144. After decodingthe barcode 144, the second device 150 may obtain the data in thebarcode, for example, the URL of the webpage, the application data,and/or the data about the configuration of the webpage.

In some embodiments, the second device 150 may automatically request thewebpage from the host system 112 over the network 110 using the URL. Thehost system 112 may use the URL to identify the webpage requested. Basedon the request, the host system 112 may provide code to the seconddevice 150 over the network 110.

The second device 150 may receive the code. Based on the received code,the second device 150, through an application such as a web browser, mayprepare to present the webpage to the user through the display 152. Thecode provided by the host system 112 may also include client side codethat may be executed by the second device 150. The second device 150 mayuse the code to alter the configuration of the webpage based on the datadecoded from the barcode 144. The altered webpage may be presented onthe display 152.

In some embodiments, the altered configuration of the webpage may bepresented by a web browser application on the second device 150 in thesame manner that the webpage is presented by a web browser on the firstdevice 140.

In some embodiments, the webpage may include the information presentedby the webpage on the first device 140 but may not include the exactsame configuration. In these and other embodiments, the information maybe presented by the webpage such that parts of the information arepositioned in the same relative position with respect to each other. Forexample, in some embodiments, the second device 150 may be a differenttype of device than the first device 140. In these and otherembodiments, the display 152 may be smaller than the display 142. Thus,the information may be arranged differently when presented on thedisplay 152 than the display 142. However, the positional relationshipof the ordered information on the webpage may be maintained across bothdisplays. FIGS. 2a-2c further illustrate the different arrangement ofinformation while maintaining a positional relationship of the orderedinformation.

In some embodiments, the second device 150 may not receive informationfrom the host system 112 to present the webpage. Rather, in these andother embodiments, the second device 150 may receive the informationpresented by the webpage for presenting to the user by anotherapplication running on the second device 150 that is associated with thewebpage. In these and other embodiments, the second device 150 maydecode the barcode 144 using the other application. For example, theother application may be specifically designed to present informationthat is presented by the webpage. For example, the webpage may be partof an on-line marketplace and the other application may be anapplication designed and provided by the on-line marketplace for use onthe second device 150.

For example, the other application may decode the barcode 144 andprovide the URL and the data to the host system 112. The host system 112may recognize the URL and determine the information provided by thewebpage of the URL. The host system 112 may provide the information tothe second device 150. The second device 150 may receive the informationand may automatically present the information by way of the otherapplication on the display 152. In some embodiments, the otherapplication may send the data to the host system 112. In these and otherembodiments, the host system 112 may use the data to configure theinformation such that it is presented by the second device 150 in asimilar manner that the information was presented on the webpage on thefirst device 140. Alternately or additionally, the second device 150 mayreceive the information from the host system 112 and may configure theinformation based on the data such that the information is presented bythe second device 150 in a similar manner that the information waspresented on the webpage on the first device 140.

In some embodiments, the second device 150 may automatically request theinformation presented by webpage from the host system 112 over thenetwork 110 using the application data and not using the URL. The hostsystem 112 may use the application data to identify the informationrequested. Based on the request, the host system 112 may provide theinformation to the second device 150 over the network 110.

In these and other embodiments, the second device 150 may receive theinformation from the host system 112. The native application running onthe second device 150 may automatically present the information by wayof the native application on the display 152. In some embodiments, thenative application may send the data to the host system 112. In theseand other embodiments, the host system 112 may use the data to configurethe information such that it is presented by the native application in asimilar manner that the information was presented on the webpage on thefirst device 140. Alternately or additionally, the native applicationmay receive the information from the host system 112 and may configurethe information based on the data such that the information is presentedby the native application in a similar manner that the information waspresented on the webpage on the first device 140.

An example follows of the operation of the system 100. A user maynavigate to a webpage on the first device 140, which may be a desktopcomputer. The user may configure a listing of items on the webpage basedon the price. A barcode 144 on the webpage may be encoded with the URLof the webpage and data indicating the sorting of the listing of itemsby price. The user may use the second device 150, which may be a mobiledevice such as a smartphone, to capture the barcode 144. The seconddevice 150 may automatically request the webpage from the host system112 and may configure the listing of items on the webpage based on theprice and present the configured webpage on the display 152.

As another example, a first user may navigate to a webpage on the firstdevice 140, which may be a mobile device. The first user may configure alisting of items on the webpage based on the price. The barcode 144 maybe encoded with the URL of the webpage and data indicating the sortingof the listing of items by price. A second user may use the seconddevice 150, which may be a mobile device, to capture the barcode 144.The second device 150 may automatically request the webpage from thehost system 112 and may configure the listing of items on the webpagebased on the price. In this manner the second user may more easilyaccess the webpage with the listings configured by price. The seconduser may then purchase an item identified in the listing.

Modifications, additions, or omissions may be made to the system 100without departing from the scope of the present disclosure. For example,the host system 112 may include additional components and/or networksthan those illustrated in or described with respect to FIG. 1. Forexample, the host system 112 may include additional databases, servers,and other computing systems configured to perform other tasks for thehost system 112.

Alternately or additionally, the system 100 may include additionaldevices. In these and other embodiments, the additional devices may eachcapture the barcode 144 from the first device 140. For example, if thewebsite is a ticket retailer, one user could find tickets on the firstdevice 140. Other users may be directed to the same tickets on differentdevices. In this manner, multiple users may each buy tickets and avoidthe hassle of a single user buying all the tickets and being repaid byother users.

FIG. 2a illustrates an example of a first configuration of a webpage 200presented on a display of a first device. The webpage 200 may bearranged in accordance with at least one embodiment described in thepresent disclosure. The webpage 200 may be implemented by a web browser.

The webpage 200 may include a first barcode 210. The first barcode 210may be included on the webpage 200. The first barcode 210 may be encodedwith the URL of the webpage 200.

The webpage 200 may further include a first sorting element 220 a, asecond sorting element 220 b, and a third sorting elements 220 c,referred to in this disclosure as the sorting elements 220. The webpage200 may further include a first list element 230 a, a second listelement 230 b, a third list element 230 c, a fourth list element 230 d,and a fifth list element 230 e, referred to in this disclosure as thelist elements 230.

A user may interact with the sorting elements 220. In some embodiments,a user may select one or more of the sorting elements 220. For example,the user interaction with the sorting elements 220 may include hoveringover the sorting elements 220. Alternately or additionally, a user mayinteract with the sorting elements 220 by engaging with the sortingelements 220, for example, by clicking the sorting elements 220.

In some embodiments, each of the sorting elements 220 may include adifferent description or identifier. The descriptions or identifiers maybe associated with how the list elements 230 are sorted upon theselection of the sorting elements 220. Upon selection of one or more ofthe sorting elements 220, the list elements 230 may change position, newlist elements 230 may appear, and/or some of the presented list elements230 may be removed. As a result, the configuration of the webpage 200may change from a first configuration to a second configuration.Modifications, additions, or omissions may be made to the webpage 200 inthe first configuration without departing from the scope of the presentdisclosure.

FIG. 2b illustrates an example of a second configuration of the webpage200 of FIG. 2a . The webpage 200 may be arranged in accordance with atleast one embodiment described in the present disclosure. In the secondconfiguration of the webpage 200, the first list element 230 a and thesecond list element 230 b may be removed from the webpage 200.Furthermore, the position of the third list element 230 c and the fourthlist element 230 d may have moved in relation to each other. Alternatelyor additionally, the webpage 200 may further include a sixth listelement 230 f and a seventh list element 230 g that may be included inthe list elements 230.

The first barcode 210 may have been removed and replaced with a secondbarcode 240. The second barcode 240 may be encoded with the URL of thewebpage 200 and data regarding the user interactions with the sortingelements 220. Modifications, additions, or omissions may be made to thewebpage 200 in the second configuration without departing from the scopeof the present disclosure.

FIG. 2c illustrates an example of the second configuration of a webpage250 presented on a display of a second device. The webpage 250 may bearranged in accordance with at least one embodiment described in thepresent disclosure. The webpage 250 may be implemented by a web browser.

In some embodiments, the webpage 250 may be presented using the URL andthe data decoded from the second barcode 240. As illustrated, thewebpage 250 includes the list elements 230 presented in the secondconfiguration of the webpage 200. Note however that the sorting elements220 are moved with respect to the list elements 230. In these and otherembodiments, however, the positional relationship of the orderedinformation on the webpage 200 in the second configuration, e.g., thelist elements 230, is maintained. Modifications, additions, or omissionsmay be made to the webpage 250 without departing from the scope of thepresent disclosure.

FIG. 3 illustrates an example system 300 that may be part of a systemthat presents information on multiple devices. The system 300 may bearranged in accordance with at least one embodiment described in thepresent disclosure. The system 300 may include a network 310; a device320 that includes a processor 322, a memory 324, a communication device326, a user interface 328, and a display 330; and a host system 340 thatincludes a database 342.

The network 310 may be configured to communicatively couple the hostsystem 340 with the device 320. In some embodiments, the network 310 maybe analogous to the network 110 of FIG. 1.

The host system 340 may be analogous to the host system 112 of FIG. 1.As illustrated, the host system 340 may include a database 342 that mayinclude information to assist in presenting a webpage on the display330. For example, the database 342 may include code for presenting awebpage and client-side code for adjusting a configuration of thewebpage. The code may include HTML code and the client-side code mayinclude javascript.

In some embodiments, the device 320 may include a processor 322 and amemory 324. In general, the processor 322 may include any suitablespecial-purpose or general-purpose computer, computing entity, orprocessing device including various computer hardware or softwaremodules and may be configured to execute instructions stored on anyapplicable computer-readable storage media. For example, the processor322 may include a microprocessor, a microcontroller, a digital signalprocessor (DSP), an application-specific integrated circuit (ASIC), aField-Programmable Gate Array (FPGA), or any other digital or analogcircuitry configured to interpret and/or to execute program instructionsand/or to process data. Although illustrated as a single processor inFIG. 3, it is understood that the processor 322 may include any numberof processors configured to perform individually or collectively anynumber of operations described herein. Additionally, one or more of theprocessors may be present on one or more different electronic devices,such as different servers. In some embodiments, the processor 322 mayinterpret and/or execute program instructions and/or process data storedin the memory 324. In some embodiments, the processor 322 may fetchprogram instructions and load the instructions in the memory 324. Afterthe instructions are loaded into memory 324, the processor 322 mayexecute the program instructions to perform operations or methodsdescribed in this disclosure. For example, the processor 322 may receiveinstructions, load the instructions into the memory 324, and execute theinstructions to perform the operations described in this disclosure. Forexample, in some embodiments, different applications may provideinstructions to the processor 322 for execution. For example, a webbrowser application may receive code and provide instructions to theprocessor 322 for execution.

The memory 324 may include computer-readable storage media for carryingor having computer-executable instructions or data structures storedthereon. Such computer-readable storage media may be any available mediathat may be accessed by a general-purpose or special-purpose computer,such as the processor 322. By way of example, such computer-readablestorage media may include tangible or non-transitory computer-readablestorage media including Random Access Memory (RAM), Read-Only Memory(ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM),Compact Disc Read-Only Memory (CD-ROM) or other optical disk storage,magnetic disk storage or other magnetic storage devices, flash memorydevices (e.g., solid state memory devices), or any other storage mediumwhich may be used to carry or store desired program code in the form ofcomputer-executable instructions or data structures and which may beaccessed by a general-purpose or special-purpose computer. Combinationsof the above may also be included within the scope of computer-readablestorage media. Computer-executable instructions may include, forexample, instructions and data configured to cause the processor 322 toperform a certain operation or group of operations.

The communication device 326 may include any component, device, system,or combination thereof that is configured to transmit or receiveinformation over the network 310 or over other networks or systems. Insome embodiments, the communication device 326 may communicate withother devices at other locations, the same location, or even othercomponents within the same system. For example, the communication device326 may include a modem, a network card (wireless or wired), an infraredcommunication device, a wireless communication device (such as anantenna), and/or chipset (such as a Bluetooth device, an 802.6 device(e.g. Metropolitan Area Network (MAN)), a WiFi device, a WiMax device,cellular communication facilities, etc.), and/or the like. Thecommunication device 326 may permit data to be exchanged with a networkand/or any other devices described in the present disclosure.

The user interface 328 may include any component, device, system, orcombination thereof that is configured to provide input from a user tothe device 320. For example, the user interface 328 may include a mouse,a track pad, a touch screen, a keyboard, or any other device that mayinterface with the device 320 to provide user input to the device 320.

The device 320 may act as the first device 140 or the second device 150of FIG. 1. When the device 320 is acting as the first device 140, thecommunication device 326 may obtain a code from the database 342 of thehost system 340. The code may be processed by a web browser applicationand executed by the processor 322 to present a webpage in the display330. A user may interact with the device 320 by way of the userinterface 328. The user interface 328 may provide the user interactionsto a web browser application that may use the code from the database 342to interpret the user interactions and change the configuration of thewebpage.

In some embodiments, the code may direct the web browser to update abarcode on the display based on the user interactions. For example, thebarcode may represent the URL of the webpage. For example,www.buythings.com/shirt/men. To update the barcode, the web browser maychange the data represented by the barcode. Previously, the data may bethe URL of the webpage. The data may be updated to include the URL ofthe webpage and one or more variables with values that represent theuser interaction with the webpage. For example, the data may bewww.buythings.com/shirt/men?price=15. The updated barcode may be encodedwith the data and presented on the display 330.

When the device 320 is acting as the second device 150 of FIG. 1, thedevice 320 may obtain the barcode with the URL and the data regarding aconfiguration of the webpage. The device 320 may decode the barcode andprovide the decoded data to a web browser. The web browser may requestthe webpage from the host system 340 using the URL portion of thedecoded data. The code from the host system 340 may instruct the webbrowser to parse the remaining portion of the decoded data to obtain thevariables and their values. Based on the variables and their values, theweb browser may adjust a configuration of the webpage as received fromthe host system 340 and present the adjusted configuration of thewebpage on the display 330.

Modifications, additions, or omissions may be made to the system 300without departing from the scope of the present disclosure. For example,the system 300 may include multiple devices.

FIG. 4 is a flowchart of example operations 400 to present informationon multiple devices. The operations 400 may be arranged in accordancewith at least one embodiment described in the present disclosure. Theoperations 400 may be performed, in some embodiments, by a system, suchas the system 100 and/or 300 of FIGS. 1 and 3, respectively. In theseand other embodiments, the operations 400 may be performed based on theexecution of instructions stored on one or more non-transitorycomputer-readable media. Although illustrated as discrete blocks,various blocks may be divided into additional blocks, combined intofewer blocks, or eliminated, depending on the desired implementation.

The operations 400 may begin at block 402, where a first barcode encodedwith a resource name in a uniform resource locator of a webpage may begenerated. In block 404, the first barcode may be presented on thewebpage by a first device.

In block 406, a user interaction with the webpage that alters aconfiguration of the webpage without leaving the webpage may be obtainedthrough the first device. In some embodiments, the configuration of thewebpage may be altered by javascript running on the first device that isprovided by a system that hosts the webpage.

In block 408, a second barcode encoded with the resource name and datamay be generated. The data may be generated based on the alteration ofthe configuration of the webpage. In some embodiments, the first barcodeand the second barcode are two dimensional machine-readable opticallabels.

In block 410, the second barcode may be presented by the first device onthe webpage with the altered configuration.

In block 412, in response to obtaining the resource name and the datafrom a decoding of the second barcode at a second device, informationpresented by the altered configuration of the webpage may beautomatically presented by the second device. In some embodiments, theinformation automatically presented may be presented by a non-webbrowser application on the second device. In some embodiments, theinformation automatically presented may be the altered configuration ofthe webpage in a web browser application on the second device.

In some embodiments, the first device may be a desktop computer and thesecond device may be a smartphone. In some embodiment, the first devicemay obtain the code for presenting the webpage from a system using theresource name. In these and other embodiments, the second device mayobtain the information presented by the altered configuration of thewebpage from the system using the resource name as decoded from thesecond barcode.

One skilled in the art will appreciate that, for this and otherprocesses, operations, and methods disclosed herein, the functionsand/or operations performed may be implemented in differing order.Furthermore, the outlined functions and operations are only provided asexamples, and some of the functions and operations may be optional,combined into fewer functions and operations, or expanded intoadditional functions and operations without detracting from the essenceof the disclosed embodiments.

For instance, in some embodiments, the operation of automaticpresentation may further include configuring the webpage based on codereceived from a hosting system and altering the webpage based on thedata to match the altered configuration of the webpage as presented onthe first device.

FIG. 5 is a flowchart of an example computer-implemented method 500 ofinformation presentation on multiple devices. The method 500 may bearranged in accordance with at least one embodiment described in thepresent disclosure. The method 500 may be implemented, in someembodiments, by a system, such as the system 100 and/or 300 of FIGS. 1and 3, respectively. Although illustrated as discrete blocks, variousblocks may be divided into additional blocks, combined into fewerblocks, or eliminated, depending on the desired implementation.

The method 500 may begin at block 502, where a first barcode may bepresented on a webpage. In some embodiments, the first barcode may beencoded with first data based on a uniform resource locator of thewebpage.

In block 504, second data based on a user interaction with the webpagemay be generated. In block 506, a configuration of the webpage may bealtered based on the user interaction without leaving the webpage.

In block 508, a second barcode encoded with the first data and thesecond data may be generated. In block 510, the second barcode on thewebpage with the altered configuration may be presented. In someembodiments, the first barcode and the second barcode may be twodimensional machine-readable optical labels.

One skilled in the art will appreciate that, for this and otherprocesses, operations, and methods disclosed herein, the functionsand/or operations performed may be implemented in differing order.Furthermore, the outlined functions and operations are only provided asexamples, and some of the functions and operations may be optional,combined into fewer functions and operations, or expanded intoadditional functions and operations without detracting from the essenceof the disclosed embodiments.

For example, in some embodiments, the method 500 may further includedecoding the second barcode at a device to obtain decoded first data anddecoded second data and requesting information presented by the alteredconfiguration of the webpage based on the decoded first data and thedecoded second data. Alternately or additionally, the method 500 mayfurther include presenting, by the device, the information without userinteraction with the device.

In some embodiments, the device may be a first device and the other actsof presenting a first barcode, generating second data, altering aconfiguration, generating a second barcode, and presenting the secondbarcode may be performed by a second device. In some embodiments, theinformation is the altered configuration of the webpage in a web browserapplication of the device. Alternately or additionally, the informationmay be presented by a non-web browser application of the device.

As indicated above, the embodiments described herein may include the useof a special purpose or general purpose computer (e.g., the processor322 of FIG. 3) including various computer hardware or software modules,as discussed in greater detail below. Further, as indicated above,embodiments described herein may be implemented using computer-readablemedia (e.g., the memory 324 or database 342 of FIG. 3) for carrying orhaving computer-executable instructions or data structures storedthereon.

In some embodiments, the different components, modules, engines, andservices described herein may be implemented as objects or processesthat execute on a computing system (e.g., as separate threads). Whilesome of the system and methods described herein are generally describedas being implemented in software (stored on and/or executed by generalpurpose hardware), specific hardware implementations or a combination ofsoftware and specific hardware implementations are also possible andcontemplated.

Terms used herein and especially in the appended claims (e.g., bodies ofthe appended claims) are generally intended as “open” terms (e.g., theterm “including” should be interpreted as “including, but not limitedto,” the term “having” should be interpreted as “having at least,” theterm “includes” should be interpreted as “includes, but is not limitedto,” etc.).

Additionally, if a specific number of an introduced claim recitation isintended, such an intent will be explicitly recited in the claim, and inthe absence of such recitation no such intent is present. For example,as an aid to understanding, the following appended claims may containusage of the introductory phrases “at least one” and “one or more” tointroduce claim recitations. However, the use of such phrases should notbe construed to imply that the introduction of a claim recitation by theindefinite articles “a” or “an” limits any particular claim containingsuch introduced claim recitation to embodiments containing only one suchrecitation, even when the same claim includes the introductory phrases“one or more” or “at least one” and indefinite articles such as “a” or“an” (e.g., “a” and/or “an” should be interpreted to mean “at least one”or “one or more”); the same holds true for the use of definite articlesused to introduce claim recitations.

In addition, even if a specific number of an introduced claim recitationis explicitly recited, those skilled in the art will recognize that suchrecitation should be interpreted to mean at least the recited number(e.g., the bare recitation of “two recitations,” without othermodifiers, means at least two recitations, or two or more recitations).Furthermore, in those instances where a convention analogous to “atleast one of A, B, and C, etc.” or “one or more of A, B, and C, etc.” isused, in general such a construction is intended to include A alone, Balone, C alone, A and B together, A and C together, B and C together, orA, B, and C together, etc. For example, the use of the term “and/or” isintended to be construed in this manner.

Further, any disjunctive word or phrase presenting two or morealternative terms, whether in the description, claims, or drawings,should be understood to contemplate the possibilities of including oneof the terms, either of the terms, or both terms. For example, thephrase “A or B” should be understood to include the possibilities of “A”or “B” or “A and B.”

However, the use of such phrases should not be construed to imply thatthe introduction of a claim recitation by the indefinite articles “a” or“an” limits any particular claim containing such introduced claimrecitation to embodiments containing only one such recitation, even whenthe same claim includes the introductory phrases “one or more” or “atleast one” and indefinite articles such as “a” or “an” (e.g., “a” and/or“an” should be interpreted to mean “at least one” or “one or more”); thesame holds true for the use of definite articles used to introduce claimrecitations.

Additionally, the use of the terms “first,” “second,” “third,” etc. arenot necessarily used herein to connote a specific order. Generally, theterms “first,” “second,” “third,” etc., are used to distinguish betweendifferent elements. Absence a showing of a specific that the terms“first,” “second,” “third,” etc., connote a specific order, these termsshould not be understood to connote a specific order.

All examples and conditional language recited herein are intended forpedagogical objects to aid the reader in understanding the invention andthe concepts contributed by the inventor to furthering the art, and areto be construed as being without limitation to such specifically recitedexamples and conditions. Although embodiments of the present disclosurehave been described in detail, it should be understood that the variouschanges, substitutions, and alterations could be made hereto withoutdeparting from the spirit and scope of the present disclosure.

What is claimed is:
 1. A computer-implemented method of information presentation by a computing device, the method comprising: capturing, by the computing device, an image of a webpage using an imaging device; decoding, by the computing device, the captured image to obtain first data based on a uniform resource locator of the webpage and second data based on user interaction with the webpage; requesting, by the computing device, the webpage using the uniform resource locator obtained from the first data; altering, by the computing device, configuration of the webpage based on the second data, the altering of the configuration performed without changing a resource name in the uniform resource locator of the webpage; and displaying, by the computing device, the altered configuration of the webpage on a display.
 2. The method as described in claim 1, wherein the image is a two-dimensional machine-readable optical label.
 3. The method as described in claim 1, wherein the altering of the configuration causes the configuration of the altered webpage to match an altered configuration of the webpage that caused generation of the second data.
 4. The method as described in claim 1, wherein the altering of the configuration includes use of a client-side script.
 5. The method as described in claim 4, wherein the client-side script is a dynamic runtime script.
 6. The method as described in claim 1, wherein the requesting is performed by a non-web browser application.
 7. The method as described in claim 1, wherein the requesting is performed by a web browser application.
 8. A computer-implemented method of information presentation by a computing device, the method comprising: generating, by the computing device, data describing user interaction with a webpage that causes the computing device to obtain information from a server that alters a configuration of the webpage to present the information; automatically generating, by the computing device, an image embedded with a resource name of the webpage and the generated data describing the user interaction with the webpage; and automatically displaying, by the computing device, the generated image as part of the webpage as embedded with the resource name and the generated data, the generated image configured to be decoded to locate the webpage using the resource name and alter the webpage based on the generated data.
 9. The method as described in claim 8, wherein the image is a two dimensional machine-readable optical label.
 10. The method as described in claim 8, wherein the altering of the configuration includes use of a client-side script.
 11. The method as described in claim 10, wherein the altering of the configuration is performed without changing a resource name in the uniform resource locator of the webpage.
 12. The method as described in claim 10, wherein the client-side script is a dynamic runtime script.
 13. The method as described in claim 10, wherein the automatically generating the image is configured to locate the webpage automatically without manual entry by a user.
 14. A device comprising: a processor; a display; and memory having instructions stored thereon that, responsive to execution by the processor, causes the processor to perform operations comprising: generating first data based on a uniform resource locator of a webpage; altering a configuration of the webpage based on user interaction with the webpage; in response to the altering, automatically generating second data based on the altered configuration, and automatically generating an image embedded with the first data and the second data; and presenting the image as included on the webpage with the altered configuration.
 15. The device as described in claim 14, wherein the image is a two dimensional machine-readable optical label.
 16. The device as described in claim 14, wherein the altering of the configuration includes use of a client-side script.
 17. The device as described in claim 16, wherein the altering of the configuration is performed without changing a resource name in the uniform resource locator of the webpage.
 18. The device as described in claim 16, wherein the client-side script is a dynamic runtime script.
 19. The device as described in claim 14, wherein the image is configured as a QR code.
 20. The method as described in claim 1, wherein the image is configured as a QR code. 